package com.expert.miniapp.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * AIMatchingConfigProperties - 需求匹配AI API配置属性（Dify格式）
 *
 * 从application.yml读取ai.matching配置
 * 用于需求匹配功能，调用Dify需求匹配AI端点
 * 使用非流式输出（blocking模式）
 *
 * @author System
 * @since 2025-11-06
 * @updated 2025-11-14 迁移到Dify API格式
 */
@Data
@Component
@ConfigurationProperties(prefix = "ai.matching")
public class AIMatchingConfigProperties {

    /**
     * Dify API端点URL
     * 需求匹配AI: https://43eirp970wpesdqs.ai-plugin.io/v1/chat-messages
     */
    private String url;

    /**
     * Dify API认证密钥
     * app-ZlPRc0r9I8iMD9SzGMdQwon3
     */
    private String key;

    /**
     * 响应模式
     * Dify支持: blocking（非流式）或streaming（流式）
     * 默认: blocking
     */
    private String responseMode = "blocking";

    /**
     * 使用的AI模型
     * 默认: gpt-4o-mini
     */
    private String model = "gpt-4o-mini";

    /**
     * 请求超时时间(毫秒)
     * 默认: 180000 (180秒)
     */
    private Integer timeout = 180000;

    /**
     * 最大重试次数
     * 默认: 1
     */
    private Integer maxRetries = 1;

    /**
     * 重试间隔时间(毫秒)
     * 默认: 5000 (5秒)
     */
    private Integer retryDelay = 5000;
}
